#1 os模块
import os
# 获取路径
print('当前的工作路径：', os.getcwd())

# 获取路径下的目录及文件
lst = os.listdir()
print('当前路径下的所有目录及文件：', lst)
lst2 = os.listdir('../')    # 上一级目录
print('指定路径下的所有目录及文件：', lst2)

# 创建目录-创建文件夹
os.mkdir('test')  # 如果文件夹已存在，报错
os.makedirs('./aa/bb/cc')  # 创建多级文件夹

# 删除目录-删除文件夹
os.rmdir('test')
os.removedirs('aa/bb/cc')

# 改变当前的工作路径
os.chdir('../')
print('当前的工作路径：', os.getcwd())
os.chdir('./chap10/')
print('-'*50)

'''
# 遍历目录树,相当于递归操作
for dirs, dirlst, filelst in os.walk('./'):
    print(dirs)
    print(dirlst)
    print(filelst)
print('-' * 50)
'''

with open('a.txt', 'w') as file:
    pass
with open('b.txt', 'w') as file1:
    pass
with open('c.txt', 'w') as file2:
    pass
# 删除文件
os.remove('./a.txt')

# 文件重命名
os.rename('b.txt', 'a.txt')

# 获取指定的文件信息
info = os.stat('c.txt')
print(type(info))
print(info)
print(info.st_size)     # 文件的大小是字节

# 启动路径下的文件
os.startfile('calc.exe')

#2 os.path模块
import os.path
# 获取目录或文件的绝对路径
print(os.path.abspath('./'))

# 判断目录或文件是否存在
print(os.path.exists('c.txt'))
print(os.path.exists('../chap10'))

# join拼接路径，等同于'+'
print(os.path.join(r'C:\zwProject\python\mypythonProject1\daily\chap10', 'c.txt'))
print(r'C:\zwProject\python\mypythonProject1\daily\chap10' + r'\c.txt')

# 分割文件名和后缀
print(os.path.splitext('c.txt'))    # 元组

# 提取文件名
print(os.path.basename(r'C:\zwProject\python\mypythonProject1\daily\chap10\c.txt'))

# 提取路径
dir1 = os.path.dirname(r'C:\zwProject\python\mypythonProject1\daily\chap10\c.txt')
print(dir1)

# 判断路径是否是有效路径
print(os.path.isdir(dir1))

# 判断文件是否是有效文件
print(os.path.isfile(r'C:\zwProject\python\mypythonProject1\daily\chap10\c.txt'))
